home *** CD-ROM | disk | FTP | other *** search
/ Gigarom 4 / Mac Giga-ROM 4.0 - 1993.toast / FILES / BBS / SECOND_SIGHT / CreateSectiondir / StackStuff.p < prev   
Encoding:
Text File  |  1990-09-21  |  1.0 KB  |  59 lines  |  [TEXT/PJMM]

  1. UNIT StackStuff;
  2.  
  3. INTERFACE
  4.  
  5.     CONST
  6.         MAXIMUM_STACK_SIZE = 512;
  7.  
  8.     TYPE
  9.         StackDataType = longint;
  10.  
  11.         StackType = RECORD
  12.  
  13.                 size : integer;
  14.  
  15.                 data : ARRAY[1..MAXIMUM_STACK_SIZE] OF StackDataType;
  16.  
  17.             END;
  18.  
  19.     PROCEDURE StackInitialize (VAR theStack : StackType);
  20.     PROCEDURE StackPush (VAR theStack : StackType;
  21.                                     data : StackDataType);
  22.     FUNCTION StackPop (VAR theStack : StackType) : StackDataType;
  23.     FUNCTION StackEmpty (theStack : StackType) : boolean;
  24.  
  25.  
  26. IMPLEMENTATION
  27.  
  28.     PROCEDURE StackInitialize;  { (var theStack : StackType)}
  29.     BEGIN
  30.         theStack.size := 0;
  31.     END;
  32.  
  33.     PROCEDURE StackPush;
  34. { (var theStack : StackType;}
  35. {    data : StackDataType );}
  36.     BEGIN
  37.  
  38.         theStack.size := theStack.size + 1;
  39.  
  40.         theStack.data[theStack.size] := data;
  41.  
  42.     END;
  43.  
  44.  
  45.     FUNCTION StackPop;{ (var theStack : StackType) : StackDataType;}
  46.     BEGIN
  47.  
  48.         StackPop := theStack.data[theStack.size];
  49.  
  50.         theStack.size := theStack.size - 1;
  51.  
  52.     END;
  53.  
  54.     FUNCTION StackEmpty;{ (theStack : StackType) : boolean;}
  55.     BEGIN
  56.         StackEmpty := NOT (theStack.size > 0);
  57.     END;
  58.  
  59. END.